package com;

/**
 * public static void sleep(long mills) throws InterruptedException
 * 
 * 		让当前线程睡眠 
 * 		静态方法,可以使用类名调用
 * 		由于是静态方法,所以写在哪个线程,就睡眠哪个线程
 * 
 * 唤醒一个线程 :
 * 	
 * 		异常唤醒
 * 		正常唤醒(睡眠时间到了)
 * 
 * interrupt () : 唤醒一个线程,会报异常
 * 
 * @author lenovo
 * @date 2020年7月24日
 */
public class Thread_03_Interrupt {

	public static void main(String[] args) {
		Thread t1 = new Thread(new Processor4());
		t1.setName("t1");
		t1.start();

		try {
			Thread.sleep(1000);
		} catch (InterruptedException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

		// 唤醒 t1 线程,会引起 sleep 异常
		t1.interrupt();
	}

}

class Processor4 implements Runnable {
	@Override
	public void run() {
		try {
			Thread.sleep(30000000000L);
			System.out.println("睡醒了");
		} catch (Exception e) {
			System.out.println("被叫醒了");
		}
		System.out.println("-------------------");
	}
}
